package com.arpa.ntocc.common.domain.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * <p>
 * 发票信息（抬头）维护DTO
 * </p>
 *
 * @author LEO
 * @since 2019-12-23
 */
@Data
@ApiModel(value="InvoiceMessageFormDTO对象", description="发票信息（抬头）维护")
public class InvoiceMessageFormDTO implements Serializable {

    @ApiModelProperty(value = "UUID")
    private String code;

    @ApiModelProperty(value = "用户编码")
    private String userCode;

    @ApiModelProperty(value = "机构编码")
    private String branchCode;

    @ApiModelProperty(value = "发票抬头")
    @NotEmpty(message = "发票抬头不能为空")
    private String invoiceTitle;

    @ApiModelProperty(value = "收件人")
    private String receiver;

    @ApiModelProperty(value = "收取地址")
    private String receiverAddress;

    @ApiModelProperty(value = "邮编")
    private String receiverPostcode;

    @ApiModelProperty(value = "收件人联系电话")
    private String receiverPhone;

    @ApiModelProperty(value = "开具类型，0个人/1企业")
    private Integer issueType;

    @ApiModelProperty(value = "税务登记证号")
    @NotEmpty(message = "税务登记证号不能为空")
    private String taxRegistrationNumber;

    @ApiModelProperty(value = "基本开户银行（数据字典）")
    @NotEmpty(message = "基本开户银行")
    private String bank;

    @ApiModelProperty(value = "基本开户账号")
    @NotEmpty(message = "基本开户账号不能为空")
    private String accountNumber;

    @ApiModelProperty(value = "注册场所地址")
    private String registeredAddress;

    @ApiModelProperty(value = "注册固定电话")
    private String registeredFixedPhone;

    @ApiModelProperty(value = "是否是开票信息：0-不是，1-是")
    private Integer isInvoiceDefault;

    @ApiModelProperty(value = "开票方式：0-现付开票，1-到付开票，2-代付开票")
    @NotNull(message = "开票方式不能为空")
    private Integer type;

    @ApiModelProperty(value = "实际收票人编码")
    private String receiverUserCode;

}
